#ifndef GRAPHIC_ENGINE_EVENT_MANAGER_H
#define GRAPHIC_ENGINE_EVENT_MANAGER_H

#include "graphics_engine.h"

#include <irrlicht.h>

#include "camera.h"

class GraphicEngineEventManager : public irr::IEventReceiver
{
public:
	GRAPHICS_ENGINE_API explicit GraphicEngineEventManager(CameraHandle& handle_camera);

public:
	GRAPHICS_ENGINE_API bool OnEvent(const irr::SEvent& event);

private:
	CameraHandle& ref_handle_camera;

	struct SMouseState
	{
		irr::core::position2di oldPosition;
		bool                   LeftButtonDown;
		bool                   RightButtonDown;
		SMouseState() 
			: LeftButtonDown(false)
			, RightButtonDown(false)
			, oldPosition()
		{ }
	} mouse_state;
};

#endif